// main_tcp_server.go
package main

import (
    "bufio"
    "fmt"
    "net"
)

// 处理客户端连接的函数
func process(conn net.Conn) {
    defer conn.Close() // 关闭连接
    for {
        reader := bufio.NewReader(conn)
        var buf [128]byte
        n, err := reader.Read(buf[:]) // 读取数据
        if err != nil {
            fmt.Println("读取客户端数据失败，错误：", err)
            break
        }
        recvStr := string(buf[:n])
        fmt.Println("收到客户端发来的数据：", recvStr)
        conn.Write([]byte(recvStr)) // 发送数据
    }
}

func main() {
    listen, err := net.Listen("tcp", "127.0.0.1:9999")
    if err != nil {
        fmt.Println("监听失败，错误：", err)
        return
    }
    for {
        conn, err := listen.Accept() // 接受客户端连接请求
        if err != nil {
            fmt.Println("接受连接失败，错误：", err)
            continue
        }
        println("客户端连接成功")
        go process(conn) // 启动一个goroutine来处理客户端连接
    }
}
